//以分好开始是为了防止引用函数的前面没有结束符合
//将系统变量作为参数传进插件；最后一个undefined不需要传参
;(function ($, window, document, undefined) {
    //定义Beautifier的构造函数
    var Beautifier = function (ele, opt) {
        this.$element = ele;
        this.defaults = {
            'color': 'red',
            'fontSize': '12px',
            'textDecoration': 'none'
        };
        //$.extend(), 会将后面的参数合并到第一个上面，后面覆盖前面的重复的
        this.options = $.extend({}, this.defaults, opt)
    };
    //定义Beautifier的方法
    Beautifier.prototype = {
        beautify: function () {
            return this.$element.css({
                'color': this.options.color,
                'fontSize': this.options.fontSize,
                'textDecoration': this.options.textDecoration
            });
        }
    };
    //在插件中使用Beautifier对象
    $.fn.myPlugin = function (options) {
        //创建Beautifier的实体
        var beautifier = new Beautifier(this, options);
        //调用其方法
        //return是为了链式调用
        return beautifier.beautify();
    }
    //自调匿名函数是为了不产生多余的全局变量
})(jQuery, window, document);